什么是NAT
NAT(Network Address Translation,网络地址转换)是一种地址转换技术,它可以将IP数据报文头中的IP地址转换为另一个IP地址,并通过转换端口号达到地址重用的目的。NAT作为一种缓解IPv4公网地址枯竭的过渡技术,由于实现简单,得到了广泛应用。
根据NAT转换是对报文中的源地址进行转换还是对目的地址进行转换,NAT可以分为:
静态 NAT:
静态 NAT( Static NAT )是指 NAT 转换前的地址和 NAT 转换后的地址是一对一的对应关系,通常是一个私网地址对应一个公网地址,手动将对应信息配置到网关中。
动态 NAT:
动态 NAT( Dynamic NAT )是在网关配置一个 IP 地址池( IP address pool ),地址池里面包含多个 IP 地址。在 NAT 建立会话时,在地址池内的 IP 地址按顺序分配一个转换后的 IP 地址。由于地址范围能够手动进行设置和更改,因此这种方式应用的比较多。
虽然和静态 NAT 有点类似,私有地址和公网地址是一对一的映射关系,但不是指定的 NAT 转换后地址,而是动态分配的、在 IP 地址池中排序靠前的有效地址。
源 NAT:
源 NAT( Source NAT )是对发送方的源 IP 地址进行 NAT 转换。在公司内部网络的客户端,要访问互联网的服务器,客户端的私有地址作为发送源,把数据发送到网关时,必须将私有 IP 地址转换成公网 IP 地址才行。要和互联网上的服务器进行通信,必须使用公网 IP 地址,但是 IPv4 地址有限,无法为每台客户端都分配一个公网地址。大部分情况下,源 NAT 能够通过动态 NAT 方式节约公网地址资源。在网关上设置地址池,或在网关的接口使用 NAPT ,可以实现私有网络访问互联网的功能。
外部网络只能看到公网地址信息,源 NAT 能够隐藏客户端实际使用的 IP 地址,从而降低受到外部网络攻击的风险。
目的 NAT:
目的 NAT( Destination NAT )是接收到的目的 IP 地址进行 NAT 转换。互联网的客户端,想要通过网关访问内部网络的服务器时,由于公司内部服务器使用内网地址,无法直接从互联网访问到,需要进行目的 NAT 。网关作为内部服务器的代理,把服务器的内网地址映射到公网地址,收到外网客户端访问公网地址时,网关将报文的目的地址转换为内部服务器的私有地址,完成路由和访问。公司内的服务器通常放置在 DMZ 区域中,能够对外部网络屏蔽内部服务器的地址,从而避免内部网络受到攻击。
NAPT:
当有大量的内网客户端要跟外网通信,而公网地址只有一个或者少量时,网关无法完成私有地址和公网地址的一对一的分配。这时,网关需要结合 TCP 或 UDP 端口号,完成多个私有地址映射成一个公网地址的转换,这种转换方式叫做 NAPT( Network Address Port Translation ,网络地址端口转换)。